<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
</head>
<body>
    <script >
     // 生成器其实就是一个特殊的函数
     // 生成器函数是ES6提供的
     // 一种异步编程解决方案

     function * gen(){
        console.log("123");
     }
     function * gen3(){
      // yield彼此之间会产生分隔符
      // yield和yield会形成一个区域
      // 这里定义了三个，会产生4个区域
      // 通过next 来跳到下一个yield区域
      console.log("123");
        yield '测试1';
        console.log("1231");
        yield '测试2';
        console.log("12311");
        yield '测试3';
        console.log("12311");
     }
     let g3 = gen3();
     for(let a of g3){
      // 你可以通过迭代器来将这个函数执行完
        console.log(a);
     }
     function* gen1(){}
     function *gen2(){} 

     // * 号写在左右中都是可以的
     // 其次是调用，这个方法无法直接获得执行结果
     let iter = gen();
     // 这个方法会返回一个迭代器对象，你需要调用netxt方法才可以看到结果
     iter.next();
   </script>
</body>

</html>